package com.AI.AIDemo.Demos.Web.Entity;

import lombok.Data;
import org.dromara.easyai.i.ActiveFunction;
import org.springframework.stereotype.Component;

/*
 * @Author:大力王
 * @Date:2025/4/28-28-16:52
 * 初始化一个卷积+线性层神经网络
 * 开始了
 */
@Data
@Component
public class ConvolutionalAndLinearLayerNeuralNetworksEntity {
    /**
     * 升降维度通道数，通道越低速度越快，越适合更简单的识别场景。通道数越大速度越慢，越能适合更复杂识别场景，该值最小为1
     */
    private int channelNo;
    /**
     * 设置卷积核大小，推荐默认值为3
     */
    private int kernLen;
    /**
     * 设置检测窗口总行数，即高度
     */
    private int xSize;
    /**
     * 设置检测窗口总列数，即宽度
     */
    private int ySize;
    /**
     * 是否增加softMax层进行多分类任务，true添加进行多分类任务，false为不添加为拟合预测任务
     */
    private boolean isSoftMax;
    /**
     * 是否打印学习过程中得数据,true打印，反之依然
     */
    private boolean isShowLog;
    /**
     * 卷积层学习率,推荐默认值0.0025
     */
    private float convStudyPoint;
    /**
     * 卷积层激活函数
     */
    private ActiveFunction convActiveFunction;
    /**
     * 1x1升降维层卷积核学习率
     */
    private float oneConvRate;
    /**
     * 卷积层最后输出矩阵特征最小维度，卷积层最后一层的输出矩阵参数规模，不可以小于该参数数值的平方，推荐默认值5，任务越复杂，样本种类越多，该参数设置则越大
     */
    private int minFeatureValue;
    /**
     * 是否进行维度调节，大多时候为默认值为true，当它为false的时候则不进行通道的升降维度，如果样本量较少，可以增加误差的下降速度，样本需求量降低，但是也会损失些许精度
     */
    private boolean norm;
}
